\chapter{Opional Requirements}

The following requirement might be fulfilled, but there are no guarantees for it. Howeever the design of the OS in an earlier phase might be influenced to allow for the following requirements

\section{Dynamic Memory Management}

In the basic specification, it is allowed to have a fixed limit on the number of processes in the system, as well as fixed-length message queues. It is also not necessary to provide dynamic memory allocation as a service to user processes. These restrictions are to be removed with this requirement.
In particular:

\begin{itemize}
    \item There should be a kernel module responsible for dynamically allocating memory for various purposes.
    \item There should no longer be a compile-time fixed upper bound on the number of processes in the system, process control blocks should be allocated dynamically.
    \item Message queues should be dynamic in size, allocating space only as needed.
    \item Out-of-memory situations have to be gracefully handled.
    \item A demonstration application should be written that demonstrates creation of processes and/or messages until memory runs out.
    \item A demonstration application should be written that demonstrates the use of dynamic memory allocation in a process.
\end{itemize}


%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "main"
%%% End: 
